#ifndef COMPLEX_H
#define COMPLEX_H

class Complex
{
  Private:
     double re;
     double im;
  public:
     Complex();
     Complex(double x,double y);
     Complex(const Complex *c);
     Complex(const Complex &c);
     -Complex(void);

     double getReal (void) const;
     void getReal (double real);
     double getImag (void) const;
     void setImg (double real);
     Complex Suma (const Complex *z);
     Complex Suma (const Complex &z);
     Complex Suma (double d);
     Complex Scadere (const Complex *z);
     Complex Scadere (const Complex &z);
     Complex Scadere (double d);
     Complex Inmultire (const Complex *z);
     Complex Inmultire (const complex &z);
     Complex Inmultire (double d);
     Complex Impartire (const Complex *z);
     Complex Impartire (const Complex &z);
     Complex Impartire (double d);
     Complex Radical (void);
     Complex operator+ (const Complex *b);
     Complex operator+ (const Complex &b) ;
     Complex operator+ (double d);
     friend Complex operator+ (double d, const Complex &z);
     Complex operator- (const *b);
     Complex operator- (const Complex &b);
     Complex operator- (double d);
     friend Complex operator- (double d, const Complex &z);
     Complex operator* (const Complex *b);
     Complex operator* (const Complex &b);
     Complex operator* (double d);
     friend Complex operator* (double d, const Complex &z);
     Complex operator^ (int power);
     Complex operator/ (const Complex *b);
     Complex operator/ (const Complex &b);
     Complex operator/ (double d);
     friend Complex operator/ (double d, const Complex &z);
     Complex operator= (const Complex *z);
     Complex operator= (const Complex &z);
     Complex operator= (double d);
     bool operator== (const Complex *z);
     bool operator== (const Complex &z);
     bool operator== (double d);
     friend bool operator== (double d, const Complex &z);
     bool operator< (const Complex *z);
     bool operator< (const Complex &z);
     bool operator< (double d);
     friend bool operator< (double d, const Complex &z);
     bool operator <= (const Complex *z);
     bool operator <= (const Complex &z);
     bool operator <= (double d);
     friend bool operator<= (double d, const Complex &z);
     bool operator> (const Complex *z);
     bool operator> (const Complex &z);
     bool operator> (double d);
     friend bool operator< (double d, const Complex &z);
     bool operator >= (const Complex *z);
     bool operator >= (const Complex &z);
     bool operator >= (double d);
     friend bool operator>= (double d, const Complex &z);
     Complex operator++(void);
};
     #endif // end of COMPLEX_H
